{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "RhMRbU15NRhT"
      },
      "outputs": [],
      "source": [
        "! pip install -q torchview\n",
        "! pip install -q -U graphviz"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "4Vt6oiY8NRhV",
        "outputId": "17a2d67e-9b39-4931-f86f-80939867e9e8",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'svg'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 2
        }
      ],
      "source": [
        "from torchview import draw_graph\n",
        "from torch import nn\n",
        "import torch\n",
        "import graphviz\n",
        "\n",
        "# when running on VSCode run the below command\n",
        "# svg format on vscode does not give desired result\n",
        "graphviz.set_jupyter_format('png')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1VX_jUboNRhX"
      },
      "source": [
        "The purpose of this notebook is to introduce API and notation of torchview package with common use cases."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ISzPg6OENRhY"
      },
      "source": [
        "We start with simple MLP model"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "LQsuPp0ENRhY"
      },
      "outputs": [],
      "source": [
        "class MLP(nn.Module):\n",
        "    \"\"\"Multi Layer Perceptron with inplace option.\n",
        "    Make sure inplace=true and false has the same visual graph\"\"\"\n",
        "\n",
        "    def __init__(self, inplace: bool = True) -> None:\n",
        "        super().__init__()\n",
        "        self.layers = nn.Sequential(\n",
        "            nn.Linear(128, 128),\n",
        "            nn.ReLU(inplace),\n",
        "            nn.Linear(128, 128),\n",
        "        )\n",
        "\n",
        "    def forward(self, x: torch.Tensor) -> torch.Tensor:\n",
        "        x = self.layers(x)\n",
        "        return x"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "id": "qyzL2xjrNRhZ"
      },
      "outputs": [],
      "source": [
        "model_graph_1 = draw_graph(\n",
        "    MLP(), input_size=(2, 128),\n",
        "    graph_name='MLP',\n",
        "    hide_inner_tensors=False,\n",
        "    hide_module_functions=False,\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "id": "h7O2V3mENRhZ",
        "outputId": "a44ec58a-fe42-42ca-a980-d3e85ff35913",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 654
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<graphviz.graphs.Digraph at 0x7f08d8db45b0>"
            ]
          },
          "metadata": {},
          "execution_count": 5
        }
      ],
      "source": [
        "model_graph_1.visual_graph"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5UMryxUNNRha"
      },
      "source": [
        "Any visual graph representation of pytorch models provided by torchview package consists of nodes and directed edges (maybe also undirected ones for future releases).\n",
        "Each node is connected by an edge that indicates information flow in the neural network.\n",
        "\n",
        "There are 3 types of nodes:\n",
        "\n",
        "* Tensor Node\n",
        "* Function Node\n",
        "* Module Node\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kJVDsJzCNRha"
      },
      "source": [
        "1) Tensor Node: This node is represented by bright yellow color. It has the label is of the form `{tensor-name}{depth}: {tensor-shape}`. `tensor-name` can take 3 values input-tensor, hidden-tensor, or output-tensor. Depth is the depth of tensor in hierarchy of modules.\n",
        "\n",
        "2) Function Node: This node is represented by bright blue color. Its label is of the form `{Function-name}{depth}: {input and output shape}`.\n",
        "\n",
        "3) Module Node: This node is represented by bright green color. Its label is of the form `{Module-name}{depth}: {input and output shape}`."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ae9HPM1tNRhb"
      },
      "source": [
        "In the example of MLP above, input tensor is called by main module MLP. This input tensor is called by its submodules, Sequential. Then, it is called by its submodule linear. Now, inside linear module exists linear function `F.linear`. This finally applied to input-tensor and returns output-tensor. This is sent to ReLU layer and so on."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Uo_JGDyfNRhb"
      },
      "source": [
        "Now, we show how rolling mechanism on recursive modules implemented. To demonstrate this, we use RNN module"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "Sxj3gz7JNRhc"
      },
      "outputs": [],
      "source": [
        "class SimpleRNN(nn.Module):\n",
        "    \"\"\"Simple RNN\"\"\"\n",
        "\n",
        "    def __init__(self, inplace: bool = True) -> None:\n",
        "        super().__init__()\n",
        "        self.hid_dim = 2\n",
        "        self.input_dim = 3\n",
        "        self.max_length = 4\n",
        "        self.lstm = nn.LSTMCell(self.input_dim, self.hid_dim)\n",
        "        self.activation = nn.LeakyReLU(inplace=inplace)\n",
        "        self.projection = nn.Linear(self.hid_dim, self.input_dim)\n",
        "\n",
        "    def forward(self, token_embedding: torch.Tensor) -> torch.Tensor:\n",
        "        b_size = token_embedding.size()[0]\n",
        "        hx = torch.randn(b_size, self.hid_dim, device=token_embedding.device)\n",
        "        cx = torch.randn(b_size, self.hid_dim, device=token_embedding.device)\n",
        "\n",
        "        for _ in range(self.max_length):\n",
        "            hx, cx = self.lstm(token_embedding, (hx, cx))\n",
        "            hx = self.activation(hx)\n",
        "\n",
        "        return hx"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "jkPr268pNRhc"
      },
      "outputs": [],
      "source": [
        "model_graph_2 = draw_graph(\n",
        "    SimpleRNN(), input_size=(2, 3),\n",
        "    graph_name='RecursiveNet',\n",
        "    roll=True\n",
        ")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "id": "GRXKwRmENRhc",
        "outputId": "5a062dba-302a-439a-ed2d-1b05ce77f28e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 400
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<graphviz.graphs.Digraph at 0x7f085b399700>"
            ]
          },
          "metadata": {},
          "execution_count": 8
        }
      ],
      "source": [
        "model_graph_2.visual_graph"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Eu1WJvTANRhd"
      },
      "source": [
        "In the graph above, we see a rolled representation of RNN with LSTM units. We see that LSTMCell and LeakyReLU nodes. This is representated by the numbers show on edges. These number near edges represent the number of edges that occur in `forward prop`. For instance, the first number 4 represent the number of times token_embedding is used.\n",
        "\n",
        "If the number of times that edge is used is 1, then it is not shown."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SDoq8wEhNRhd"
      },
      "source": [
        "Another useful feature is the resize feature. Say, the previous image of RNN is too big for your purpose. What we can do is to use resize feature rescale it by 0.5"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "ju2uNsapNRhd"
      },
      "outputs": [],
      "source": [
        "model_graph_2.resize_graph(scale=0.5)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "P8gQzaTGNRhd",
        "outputId": "e5c87b69-ea8a-4c0b-82c8-1f793b4f17a1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 400
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<graphviz.graphs.Digraph at 0x7f085b399700>"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ],
      "source": [
        "model_graph_2.visual_graph"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5t3-aW3rNRhd"
      },
      "source": [
        "It got smaller !!!"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3.10.4 ('pytorch-env')",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.0"
    },
    "orig_nbformat": 4,
    "vscode": {
      "interpreter": {
        "hash": "70d612b283d01ec4363ad8d402f22493234f9e6f823eb24b777bb7b2472b1ace"
      }
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}